package com.commerce.xiaotieqiu;

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;

import android.util.Log;

/**
 * Json结果解析类
 */

public class JsonParser {
	public static String parseIatResult(String json) {
		StringBuffer ret = new StringBuffer() ;
		try {
			JSONTokener tokener = new JSONTokener(json) ;
			JSONObject joResult = new JSONObject(tokener) ;

			JSONArray words = joResult.getJSONArray("ws" );
			for (int i = 0; i < words.length(); i++) {
				// 转写结果词，默认使用第一个结果
				JSONArray items = words.getJSONObject(i).getJSONArray("cw" );
				JSONObject obj = items.getJSONObject(0 );
				ret.append(obj.getString("w" ));
//                  如果需要多候选结果，解析数组其他字段
//                 for(int j = 0; j < items.length(); j++)
//                 {
//                      JSONObject obj = items.getJSONObject(j);
//                      ret.append(obj.getString("w"));
//                 }
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ret.toString();
	}

	public static String parseGrammarResult(String json) {
		StringBuffer ret = new StringBuffer() ;
		try {
			JSONTokener tokener = new JSONTokener(json) ;
			JSONObject joResult = new JSONObject(tokener) ;

			JSONArray words = joResult.getJSONArray("ws" );
			for (int i = 0; i < words.length(); i++) {
				JSONArray items = words.getJSONObject(i).getJSONArray("cw" );
				for (int j = 0; j < items.length() ; j++)
				{
					JSONObject obj = items.getJSONObject(j);
					if (obj.getString("w").contains( "nomatch"))
					{
						ret.append( "没有匹配结果.") ;
						return ret.toString();
					}
					ret.append( "【结果】" + obj.getString("w" ));
					ret.append("【置信度】 " + obj.getInt("sc" ));
					ret.append("\n ");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			ret.append(" 没有匹配结果 .");
		}
		return ret.toString();
	}

	public static String parseLocalGrammarResult(String json) {
		StringBuffer ret = new StringBuffer() ;
		try {
			JSONTokener tokener = new JSONTokener(json) ;
			JSONObject joResult = new JSONObject(tokener) ;

			JSONArray words = joResult.getJSONArray("ws" );
			for (int i = 0; i < words.length(); i++) {
				JSONArray items = words.getJSONObject(i).getJSONArray("cw" );
				for (int j = 0; j < items.length() ; j++)
				{
					JSONObject obj = items.getJSONObject(j);
					if (obj.getString("w").contains( "nomatch"))
					{
						ret.append( "没有匹配结果.") ;
						return ret.toString();
					}
					ret.append( "【结果】" + obj.getString("w" ));
					ret.append("\n ");
				}
			}
			ret.append("【置信度】 " + joResult.optInt("sc" ));

		} catch (Exception e) {
			e.printStackTrace();
			ret.append(" 没有匹配结果 .");
		}
		return ret.toString();
	}
}